Firebase Cloud Messaging (FCM) Integration

Mobile App Development - ডট নেট এমআইইউআই (.NET MAUI) Notifications এবং Background Tasks |
171
171

Firebase Cloud Messaging (FCM) একটি শক্তিশালী সার্ভিস যা অ্যাপ্লিকেশনে রিয়েল-টাইম নোটিফিকেশন পাঠানোর জন্য ব্যবহৃত হয়। .NET MAUIFCM ইনটিগ্রেট করার মাধ্যমে আপনি মোবাইল অ্যাপ্লিকেশনগুলিতে পুশ নোটিফিকেশন পাঠাতে পারেন। FCM বিভিন্ন ধরনের নোটিফিকেশন সমর্থন করে, যেমন টেক্সট নোটিফিকেশন, ডাটা নোটিফিকেশন, এবং এপ্লিকেশন-বেসড নোটিফিকেশন

এখানে .NET MAUI অ্যাপ্লিকেশনে Firebase Cloud Messaging (FCM) ইন্টিগ্রেট করার জন্য ধাপে ধাপে গাইড দেওয়া হয়েছে।


১. Firebase Console Setup

প্রথমে আপনাকে Firebase Console থেকে একটি প্রজেক্ট তৈরি করতে হবে এবং FCM সক্রিয় করতে হবে।

Firebase Project Setup:

  1. Firebase Console (https://console.firebase.google.com) এ যান এবং একটি নতুন প্রজেক্ট তৈরি করুন।
  2. প্রজেক্ট তৈরি হলে, Cloud Messaging ট্যাব থেকে FCM সক্রিয় করুন।
  3. Server key এবং Sender ID গ্রহণ করুন, যেগুলি পরবর্তীতে .NET MAUI অ্যাপ্লিকেশনে ব্যবহার করা হবে।

২. Firebase SDK এবং Dependencies ইনস্টলেশন

.NET MAUI অ্যাপ্লিকেশনে Firebase Cloud Messaging (FCM) ব্যবহার করতে, NuGet প্যাকেজ ইনস্টল করতে হবে।

Firebase SDK এর জন্য প্রয়োজনীয় প্যাকেজ:

  1. Firebase.CloudMessaging প্যাকেজ ইনস্টল করতে হবে।
  2. Firebase SDK এর NuGet প্যাকেজ ইনস্টল করতে:
    • Firebase.Messaging বা
    • Xamarin.Firebase.Messaging প্যাকেজ ইনস্টল করুন (যেহেতু .NET MAUI সরাসরি Firebase Messaging সমর্থন করে না, তাই Xamarin ফ্রেমওয়ার্কের কিছু প্যাকেজ ব্যবহার করা হতে পারে)।

৩. Android এবং iOS প্ল্যাটফর্ম কনফিগারেশন

Firebase Cloud Messaging ব্যবহার করতে হলে, আপনার Android এবং iOS প্ল্যাটফর্মে কিছু কনফিগারেশন করতে হবে।

Android Configuration:

  1. google-services.json ফাইলটি Firebase Console থেকে ডাউনলোড করুন এবং এটি আপনার Android প্রজেক্টের Resources ফোল্ডারে যুক্ত করুন।
  2. AndroidManifest.xml ফাইলে Firebase এবং FCM এর জন্য কনফিগারেশন যোগ করুন:
<service android:name="com.google.firebase.messaging.FirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_notification"/>

iOS Configuration:

  1. GoogleService-Info.plist ফাইলটি Firebase Console থেকে ডাউনলোড করুন এবং এটি আপনার iOS প্রজেক্টে যুক্ত করুন।
  2. AppDelegate.cs ফাইলে Firebase এবং FCM কনফিগারেশন যোগ করুন:
using Firebase.CloudMessaging;
using Firebase.Core;

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    FirebaseApp.Configure();
    Messaging.SharedInstance.Delegate = this;
    return base.FinishedLaunching(app, options);
}

৪. FCM Token এবং Notification Handling

Firebase Cloud Messaging ব্যবহার করার জন্য আপনাকে FCM Token পেতে হবে, যা সঠিক ডিভাইসে পুশ নোটিফিকেশন পাঠানোর জন্য ব্যবহৃত হবে।

Firebase Messaging Service:

FCM ব্যবহার করতে হলে, একটি FirebaseMessagingService ক্লাস তৈরি করতে হবে যা পুশ নোটিফিকেশন হ্যান্ডেল করবে। এই ক্লাসটি Android এবং iOS প্ল্যাটফর্মে পৃথকভাবে কনফিগার করতে হবে।

using Firebase.Messaging;

public class MyFirebaseMessagingService : FirebaseMessagingService
{
    // Override to handle messages
    public override void OnMessageReceived(RemoteMessage message)
    {
        // Process the message here (Notification, Data)
        var notification = message.GetNotification();
        if (notification != null)
        {
            // Handle the notification message
            // Show a notification to the user, update the UI, etc.
        }
    }

    // Called when the FCM Token is refreshed
    public override void OnNewToken(string token)
    {
        // Send token to your server for pushing notifications
        Console.WriteLine($"New FCM Token: {token}");
    }
}

এখানে:

  • OnMessageReceived: যখন একটি পুশ নোটিফিকেশন আসে, তখন এই মেথডটি কল হবে এবং আপনি নোটিফিকেশনটি প্রক্রিয়া করতে পারবেন।
  • OnNewToken: যদি FCM টোকেনটি রিফ্রেশ করা হয়, তবে এই মেথডটি কল হবে। আপনি এই টোকেনটি আপনার সার্ভারে পাঠাতে পারেন।

৫. Sending Push Notification from Firebase Console

Firebase Console ব্যবহার করে আপনি সহজেই Push Notifications পাঠাতে পারেন।

  1. Firebase Console এ গিয়ে Cloud Messaging ট্যাব সিলেক্ট করুন।
  2. একটি নতুন Notification তৈরি করুন এবং তারপরে টার্গেট ডিভাইস নির্বাচন করুন।
  3. Message Text এবং অন্যান্য তথ্য পূর্ণ করুন এবং নোটিফিকেশন পাঠান।

৬. Handling Push Notifications

মোবাইল অ্যাপ্লিকেশনে পুশ নোটিফিকেশন গ্রহণ করার জন্য FirebaseMessagingService এবং OnMessageReceived মেথড ব্যবহার করা হয়। আপনি ব্যবহারকারীর অ্যাপের UI তে নোটিফিকেশন দেখানোর জন্য Local Notification পাঠাতে পারেন অথবা কিছু ডাটা প্রসেস করতে পারেন।


৭. Sending Push Notification Programmatically (Server Side)

Firebase এর API ব্যবহার করে আপনি সার্ভার থেকে প্রোগ্রামেটিকালি পুশ নোটিফিকেশন পাঠাতে পারেন।

Firebase HTTP v1 API:

আপনি Firebase HTTP v1 API ব্যবহার করে FCM সার্ভারে পুশ নোটিফিকেশন পাঠাতে পারবেন।

Request Body Example:
{
   "message": {
     "token" : "device_token_here",
     "notification" : {
       "title" : "Hello",
       "body" : "This is a test notification"
     },
     "data" : {
       "extra_info" : "This is some extra data"
     }
   }
}
Example HTTP Request in C#:
using System.Net.Http;
using System.Text;

public async Task SendNotificationAsync(string token, string title, string body)
{
    var client = new HttpClient();
    var request = new HttpRequestMessage(HttpMethod.Post, "https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send");
    request.Headers.Add("Authorization", "Bearer YOUR_SERVER_KEY");

    var json = $@"
    {{
        ""message"": {{
            ""token"": ""{token}"",
            ""notification"": {{
                ""title"": ""{title}"",
                ""body"": ""{body}""
            }},
            ""data"": {{
                ""extra_info"": ""Some extra data""
            }}
        }}
    }}";

    request.Content = new StringContent(json, Encoding.UTF8, "application/json");

    var response = await client.SendAsync(request);
    var responseBody = await response.Content.ReadAsStringAsync();
    Console.WriteLine(responseBody);
}

এখানে:

  • YOUR_PROJECT_ID: Firebase প্রজেক্টের ID।
  • YOUR_SERVER_KEY: Firebase Console থেকে প্রাপ্ত Server Key।
  • token: যে ডিভাইসে নোটিফিকেশন পাঠাতে চান তার FCM Token।

সারাংশ:

  • Firebase Cloud Messaging (FCM) ব্যবহার করে .NET MAUI অ্যাপ্লিকেশনগুলিতে পুশ নোটিফিকেশন পাঠানো যায়।
  • Firebase Console ব্যবহার করে আপনি সহজেই পুশ নোটিফিকেশন পাঠাতে পারেন।
  • FirebaseMessagingService এর মাধ্যমে FCM Token প্রাপ্তি এবং নোটিফিকেশন রিসিভ করতে পারেন।
  • আপনি HTTP v1 API ব্যবহার করে সার্ভার থেকে প্রোগ্রামেটিকালি পুশ নোটিফিকেশন পাঠাতে পারেন।
Content added By
Promotion